var ppt=(function(){
    function PPT(el,settings){
        this.el=el;
        this.settings=settings;
        this.curIndex=0;
        this.btn=this.el.find('.btn');
        this.item=this.el.find('li.item');
        this.total=this.item.length;
        this.timer=null;
        this.pptFlag=true;
        this.init();
    }
    PPT.prototype={
        init:function(){
            this.initDom();
            this.initEvents();
        },
        initDom:function(){
            var html=`<ul class="circle">`;
            for(let i=0;i<this.total;i++){
               if(i==0){
                  html+=`<li class="circle-item active"></li>`;
               }else{
                  html+=`<li class="circle-item"></li>`;
               }
            }
            html+=`</ul>`;
            this.el.append(html);
        },
        initEvents:function(){
            var _this=this;
            _this.btn.on('click',function(){
                if($(this).hasClass('prev')){
                    _this.switchPPT('prev');
                }else if($(this).hasClass('next')){
                    _this.switchPPT('next');
                }
            });
            if(_this.settings.autoPlay){
                _this.clock();
                _this.el.hover(function() {
                    clearInterval(_this.timer);
                }, function() {
                    _this.clock();
                });
            }
        },
        switchPPT:function(type){
            if(this.pptFlag){
                var _this=this;
                this.pptFlag=false;
                if(type=='prev'){
                   this.curIndex--;
                   if(this.curIndex<0){
                      this.curIndex=this.total-1;
                   }
                }else if(type=='next'){
                   this.curIndex++;
                   if(this.curIndex>this.total-1){
                      this.curIndex=0;
                   }
                }
                this.item.eq(this.curIndex).animate({'opacity':1}, this.settings.speed).siblings().animate({'opacity':0}, this.settings.speed,function(){
                    _this.pptFlag=true;
                });
                $('.circle-item').eq(this.curIndex).addClass('active').siblings().removeClass('active');
            }
        },
        clock:function(){
            this.timer=setInterval(()=>{
                $('.next').click();
            },this.settings.delay);
        }
    }
    function init(el,options){
        var defaults={
            speed:300,
            autoPlay:false,
            delay:3000
        }
        var settings=$.extend({},defaults,options);
        new PPT(el,settings);
    }
    return {
        init
    }
})();